// pages/pet/detail.js
// 引入相关服务
const petService = require('../../services/pet');
const medicalService = require('../../services/medical');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    petId: null,
    pet: null,
    medicalRecords: [],
    vaccines: [],
    loading: {
      pet: true,
      medical: true,
      vaccine: true
    },
    currentAge: '', // 当前年龄
    tabs: ['基本信息', '健康档案', '疫苗记录'],
    activeTab: 0
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    if (options.id) {
      this.setData({
        petId: options.id
      });
      this.loadPetDetail(options.id);
      this.loadMedicalRecords(options.id);
      this.loadVaccineRecords(options.id);
    } else {
      wx.showToast({
        title: '参数错误',
        icon: 'none'
      });
      setTimeout(() => {
        wx.navigateBack();
      }, 1500);
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    if (this.data.petId) {
      // 可能从其他页面返回，刷新数据
      this.loadMedicalRecords(this.data.petId);
      this.loadVaccineRecords(this.data.petId);
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    const petName = this.data.pet ? this.data.pet.name : '宠物';
    return {
      title: `${petName}的健康档案 - 宠物医院`,
      path: '/pages/index/index'
    };
  },

  // 加载宠物详情
  loadPetDetail(id) {
    petService.getPetDetail(id)
      .then(res => {
        this.setData({
          pet: res,
          'loading.pet': false
        });
        
        // 计算年龄
        if (res.birthday) {
          this.calculateAge(res.birthday);
        }
      })
      .catch(err => {
        console.error('获取宠物详情失败', err);
        this.setData({
          'loading.pet': false
        });
        
        wx.showToast({
          title: '获取宠物详情失败',
          icon: 'none'
        });
      });
  },
  
  // 加载健康档案
  loadMedicalRecords(petId) {
    medicalService.getPetMedicalRecords(petId)
      .then(res => {
        console.log('获取宠物健康档案成功:', res);
        this.setData({
          medicalRecords: res || [],
          'loading.medical': false
        });
      })
      .catch(err => {
        console.error('获取健康档案失败', err);
        this.setData({
          medicalRecords: [],
          'loading.medical': false
        });
      });
  },
  
  // 加载疫苗记录
  loadVaccineRecords(petId) {
    medicalService.getVaccineRecords(petId)
      .then(res => {
        console.log('获取疫苗记录成功:', res);
        this.setData({
          vaccines: res || [],
          'loading.vaccine': false
        });
      })
      .catch(err => {
        console.error('获取疫苗记录失败', err);
        this.setData({
          vaccines: [],
          'loading.vaccine': false
        });
      });
  },
  
  // 计算宠物年龄
  calculateAge(birthday) {
    const today = new Date();
    const birthDate = new Date(birthday);
    
    let years = today.getFullYear() - birthDate.getFullYear();
    let months = today.getMonth() - birthDate.getMonth();
    
    if (months < 0) {
      years--;
      months += 12;
    }
    
    let ageText = '';
    if (years > 0) {
      ageText = `${years}岁`;
      if (months > 0) {
        ageText += `${months}个月`;
      }
    } else {
      ageText = `${months}个月`;
    }
    
    this.setData({
      currentAge: ageText
    });
  },
  
  // 切换标签
  switchTab(e) {
    const index = e.currentTarget.dataset.index;
    this.setData({
      activeTab: index
    });
  },
  
  // 跳转到编辑页面
  navigateToEdit() {
    wx.navigateTo({
      url: `/pages/pet/edit?id=${this.data.petId}`
    });
  },
  
  // 跳转到添加健康档案页面
  navigateToAddMedical() {
    // 直接跳转到健康档案列表页面
    wx.navigateTo({
      url: `/pages/medical/index?petId=${this.data.petId}`
    });
  },
  
  // 跳转到健康档案详情页面
  navigateToMedicalDetail(e) {
    const id = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: `/pages/medical/detail?id=${id}`
    });
  },
  
  // 跳转到添加疫苗记录页面
  navigateToAddVaccine() {
    wx.navigateTo({
      url: `/pages/medical/vaccine/add?petId=${this.data.petId}`
    });
  },
  
  // 跳转到健康档案列表页面
  navigateToMedicalRecords() {
    wx.navigateTo({
      url: `/pages/user/medical/list?petId=${this.data.pet.id}&petName=${this.data.pet.name}`
    });
  },
  
  // 跳转到疫苗接种记录列表页面
  navigateToVaccineRecords() {
    wx.navigateTo({
      url: `/pages/medical/vaccine/list?petId=${this.data.petId}`
    });
  },
  
  // 跳转到添加预约页面
  navigateToAppointment() {
    wx.navigateTo({
      url: `/pages/appointment/add?petId=${this.data.petId}`
    });
  }
})